Search


📜 [專欄新文章] Solidity Weekly #13
✍️ mingd...

  • Share this:


📜 [專欄新文章] Solidity Weekly #13
✍️ mingderwang
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium

哪裡還能用 solidity 寫程式?

大家看過 Solidity Weekly 的人﹐應該都知道 Solidity 是為 Ethereum blockchain 開發出來的一種專門用來寫 Smart Contract (智能合約) 的電腦語言。編譯好的 solidity 程式﹐可以部署到 Ethereum 區塊鏈網路﹐讓其他程式透過 web3.js (for Javascript)、web3.py (for Python)、Nethereum (for C#、.NET、Unity)、或甚至還沒開始夯的 cloud native languages 之一 Ballerina package-ethereum (for Ballerina) 來與之互動。各有個別的開發 frameworks﹐以下我會做一個清單來說明。

但基本上用 Solidity 開發出來的程式﹐只要有 EVM (Ethereum Virtual Machine) 的環境﹐就可以執行。所以想像空間就更大了, 就像 Java 當年想跨平台執行任何程式的夢想﹐如今也開始在區塊鏈(們) 上藉由 Solidity 做到跨區塊鏈也移植 Dapps 的夢想。(其實 Dapps 這個名詞﹐會漸漸不存在﹐因為每種 apps 包括手機程式、應用程式、遊戲軟體﹐甚至付費機制的 widgets、付費廣告、打賞平台、聊天網、早晚都會有連上區塊鏈的需求﹐所以終究每種 app 都是 Dapp。)

TL;DR

相容於 Ethereum 的 EVM 的區塊鏈﹐都可以執行 Solidity 開發出來的程式﹐當然包括用不同語言開發出來的 Ethereum client (node): geth (in Golang)、Parity (in Rust)、以及還在 0.2.0 alpha 的 Trinity (py-evm) (in Python)、cpp-ethereum (for C++)、等等…

所以﹐還有哪些地方可以用 Solidity 寫程式?EOS? (原本以為 EOS.IO 說要支援 Solidity,﹐但看似計畫取消﹐還是要用 C++ 才能撰寫 EOS contracts)

另一個可能性是 eWASM (Ethereum Web Assembly)﹐Web Assembly 支援的 browsers 還蠻多的﹐但 Ethereum 在這方面的還在發展中﹐應該會在 Ethereum 2.0 Roadmap 裡。

最後還有一個 RSK 可以部署 Solidity 程式﹐我還在測試中。感覺很怪, 花 Bitcoin 的錢去執行 gas 會不會太貴﹐有點像在開 Hybridge cars。

開發環境清單:

Javascript

ZeppellinOS、Dapp、Truffle (+ Drizzle)、Embark

Python

Populus

C#, F#, .NET (also for Unity3D)

Nethereum

links 分享;

Unit testing Solidity contracts on Ethereum with Go — (Nathan Murthy)

Nethereum 2.0.0 rc5 — Unity3d integration — (Juan Blanco)﹐Ming> 有興趣開發區塊鏈 3D games 可以參考。

註: 還有沒有列到但值得一提的 EVM 語言或工具﹐大家可以留言…

Solidity Weekly #13 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.

👏 歡迎轉載分享鼓掌


Tags:

About author
not provided
We have regular meeting twice per month on discussing blockchain technology, smart contracts and DApps development! We would love to have you join us!
View all posts